package com.xwdeshj.entity;

import com.fasterxml.jackson.annotation.JsonIgnore;
import org.springframework.format.annotation.DateTimeFormat;

import javax.persistence.*;
import java.util.Date;

/**
 * 管理员、商家、普通用户信息表
 */
@Entity(name = "xw_userinfo")
public class XwUserinfo {

    /**
     * 用户id
     */
    @Column(name = "user_id")
    private Integer userId;

    /**
     * 用户加密id
     */
    @Column(name = "user_encryptId")
    private String userEncryptid;

    /**
     * 用户名（登录名）
     */
    @Column(name = "user_name")
    private String userName;

    /**
     * 电话
     */
    @Column(name = "user_tel")
    private String userTel;

    /**
     * 姓名（管理员是真实姓名，用户和商家则是昵称）
     */
    @Column(name = "user_realName")
    private String userRealname;

    /**
     * 头像
     */
    @Column(name = "user_Avatar")
    private String userAvatar;

    /**
     * 性别
     */
    @Column(name = "user_sex")
    private String userSex;

    /**
     * 角色（0：普通用户，1：企业商家，2：超级管理员……）
     */
    @Column(name = "user_role")
    private String userRole;

    /**
     * 判断该账号是否是首次登录（0：首次，1：未首次）
     */
    @Column(name = "user_first")
    private String userFirst;

    /**
     * 用户状态（0：未启用，1：启用）
     */
    @Column(name = "jurisdiction")
    private String jurisdiction;

    /**
     * 密码
     */
    @JsonIgnore //属性忽略掉,显示的时候，不显示密码
    @Column(name = "user_password")
    private String userPassword;

    /**
     * 更新时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Column(name = "user_updatetime")
    private Date userUpdatetime;

    /**
     * 注册时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Column(name = "user_createtime")
    private Date userCreatetime;

    /**
     * 兴趣爱好(主题)
     */
    @Column(name = "user_hobby_zt")
    private String userHobbyZt;

    /**
     * 兴趣爱好（游玩）
     */
    @Column(name = "user_hobby_yw")
    private String userHobbyYw;

    /**
     * 邮箱
     */
    @Column(name = "user_mail")
    private String userMail;

    public XwUserinfo(){

    }

    public String getUserMail() {
        return userMail;
    }

    public void setUserMail(String userMail) {
        this.userMail = userMail;
    }

    public XwUserinfo(String userEncryptid, String userName, String userTel, String userRealname, String userAvatar, String userSex, String userRole, String userFirst, String jurisdiction, String userPassword, Date userUpdatetime, Date userCreatetime, String userHobbyZt, String userHobbyYw, String userMail) {
        this.userEncryptid = userEncryptid;

        this.userName = userName;
        this.userTel = userTel;
        this.userRealname = userRealname;
        this.userAvatar = userAvatar;
        this.userSex = userSex;
        this.userRole = userRole;
        this.userFirst = userFirst;
        this.jurisdiction = jurisdiction;
        this.userPassword = userPassword;
        this.userUpdatetime = userUpdatetime;
        this.userCreatetime = userCreatetime;
        this.userHobbyZt = userHobbyZt;
        this.userHobbyYw = userHobbyYw;
        this.userMail = userMail;
    }


    /**
     * 获取用户id
     *
     * @return user_id - 用户id
     */
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    public Integer getUserId() {
        return userId;
    }

    /**
     * 设置用户id
     *
     * @param userId 用户id
     */
    public void setUserId(Integer userId) {
        this.userId = userId;
    }

    /**
     * 获取用户加密id
     *
     * @return user_encryptId - 用户加密id
     */
    public String getUserEncryptid() {
        return userEncryptid;
    }

    /**
     * 设置用户加密id
     *
     * @param userEncryptid 用户加密id
     */
    public void setUserEncryptid(String userEncryptid) {
        this.userEncryptid = userEncryptid;
    }

    /**
     * 获取用户名（登录名）
     *
     * @return user_name - 用户名（登录名）
     */
    public String getUserName() {
        return userName;
    }

    /**
     * 设置用户名（登录名）
     *
     * @param userName 用户名（登录名）
     */
    public void setUserName(String userName) {
        this.userName = userName;
    }

    /**
     * 获取电话
     *
     * @return user_tel - 电话
     */
    public String getUserTel() {
        return userTel;
    }

    /**
     * 设置电话
     *
     * @param userTel 电话
     */
    public void setUserTel(String userTel) {
        this.userTel = userTel;
    }

    /**
     * 获取姓名（管理员是真实姓名，用户和商家则是昵称）
     *
     * @return user_realName - 姓名（管理员是真实姓名，用户和商家则是昵称）
     */
    public String getUserRealname() {
        return userRealname;
    }

    /**
     * 设置姓名（管理员是真实姓名，用户和商家则是昵称）
     *
     * @param userRealname 姓名（管理员是真实姓名，用户和商家则是昵称）
     */
    public void setUserRealname(String userRealname) {
        this.userRealname = userRealname;
    }

    /**
     * 获取头像
     *
     * @return user_Avatar - 头像
     */
    public String getUserAvatar() {
        return userAvatar;
    }

    /**
     * 设置头像
     *
     * @param userAvatar 头像
     */
    public void setUserAvatar(String userAvatar) {
        this.userAvatar = userAvatar;
    }

    /**
     * 获取性别
     *
     * @return user_sex - 性别
     */
    public String getUserSex() {
        return userSex;
    }

    /**
     * 设置性别
     *
     * @param userSex 性别
     */
    public void setUserSex(String userSex) {
        this.userSex = userSex;
    }

    /**
     * 获取角色（0：普通用户，1：企业商家，2：超级管理员……）
     *
     * @return user_role - 角色（0：普通用户，1：企业商家，2：超级管理员……）
     */
    public String getUserRole() {
        return userRole;
    }

    /**
     * 设置角色（0：普通用户，1：企业商家，2：超级管理员……）
     *
     * @param userRole 角色（0：普通用户，1：企业商家，2：超级管理员……）
     */
    public void setUserRole(String userRole) {
        this.userRole = userRole;
    }

    /**
     * 获取判断该账号是否是首次登录（0：首次，1：未首次）
     *
     * @return user_first - 判断该账号是否是首次登录（0：首次，1：未首次）
     */
    public String getUserFirst() {
        return userFirst;
    }

    /**
     * 设置判断该账号是否是首次登录（0：首次，1：未首次）
     *
     * @param userFirst 判断该账号是否是首次登录（0：首次，1：未首次）
     */
    public void setUserFirst(String userFirst) {
        this.userFirst = userFirst;
    }

    /**
     * 获取用户状态（0：未启用，1：启用）
     *
     * @return user_status - 用户状态（0：未启用，1：启用）
     */
    public String getJurisdiction() {
        return jurisdiction;
    }

    /**
     * 设置用户状态（0：未启用，1：启用）
     *
     * @param jurisdiction 用户权限
     */
    public void setJurisdiction(String jurisdiction) {
        this.jurisdiction = jurisdiction;
    }

    /**
     * 获取密码
     *
     * @return user_password - 密码
     */
    public String getUserPassword() {
        return userPassword;
    }

    /**
     * 设置密码
     *
     * @param userPassword 密码
     */
    public void setUserPassword(String userPassword) {
        this.userPassword = userPassword;
    }

    /**
     * 获取更新时间
     *
     * @return user_updatetime - 更新时间
     */
    public Date getUserUpdatetime() {
        return userUpdatetime;
    }

    /**
     * 设置更新时间
     *
     * @param userUpdatetime 更新时间
     */
    public void setUserUpdatetime(Date userUpdatetime) {
        this.userUpdatetime = userUpdatetime;
    }

    /**
     * 获取注册时间
     *
     * @return user_createtime - 注册时间
     */
    public Date getUserCreatetime() {
        return userCreatetime;
    }

    /**
     * 设置注册时间
     *
     * @param userCreatetime 注册时间
     */
    public void setUserCreatetime(Date userCreatetime) {
        this.userCreatetime = userCreatetime;
    }

    /**
     * 获取兴趣爱好(主题)
     *
     * @return user_hobby_zt - 兴趣爱好(主题)
     */
    public String getUserHobbyZt() {
        return userHobbyZt;
    }

    /**
     * 设置兴趣爱好(主题)
     *
     * @param userHobbyZt 兴趣爱好(主题)
     */
    public void setUserHobbyZt(String userHobbyZt) {
        this.userHobbyZt = userHobbyZt;
    }

    /**
     * 获取兴趣爱好（游玩）
     *
     * @return user_hobby_yw - 兴趣爱好（游玩）
     */
    public String getUserHobbyYw() {
        return userHobbyYw;
    }

    /**
     * 设置兴趣爱好（游玩）
     *
     * @param userHobbyYw 兴趣爱好（游玩）
     */
    public void setUserHobbyYw(String userHobbyYw) {
        this.userHobbyYw = userHobbyYw;
    }

    @Override
    public String toString() {
        return "XwUserinfo{" +
                "userId=" + userId +
                ", userEncryptid='" + userEncryptid + '\'' +
                ", userName='" + userName + '\'' +
                ", userTel='" + userTel + '\'' +
                ", userRealname='" + userRealname + '\'' +
                ", userAvatar='" + userAvatar + '\'' +
                ", userSex='" + userSex + '\'' +
                ", userRole='" + userRole + '\'' +
                ", userFirst='" + userFirst + '\'' +
                ", jurisdiction='" + jurisdiction + '\'' +
                ", userPassword='" + userPassword + '\'' +
                ", userUpdatetime=" + userUpdatetime +
                ", userCreatetime=" + userCreatetime +
                ", userHobbyZt='" + userHobbyZt + '\'' +
                ", userHobbyYw='" + userHobbyYw + '\'' +
                ", userMail='" + userMail + '\'' +
                '}';
    }
}